package com.gqh.weather.domain.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 学年枚举
 */
@Getter
@AllArgsConstructor
public enum XueNianEnum {

    /**
     * 全部
     */
    ALL(0, "全部"),

    /**
     * 2024~2025学年
     */
    YEAR_2024(2024, "2024~2025"),

    /**
     * 2023~2024学年
     */
    YEAR_2023(2023, "2023~2024"),

    /**
     * 2022~2023学年
     */
    YEAR_2022(2022, "2022~2023");

    /**
     * 学年值
     */
    private final Integer value;

    /**
     * 学年描述
     */
    private final String description;

    /**
     * 根据值获取枚举
     *
     * @param value 学年值
     * @return 学年枚举
     */
    public static XueNianEnum fromValue(Integer value) {
        if (value == null) {
            return null;
        }
        for (XueNianEnum item : values()) {
            if (item.getValue().equals(value)) {
                return item;
            }
        }
        return null;
    }

    /**
     * 验证学年值是否有效
     *
     * @param value 学年值
     * @return 是否有效
     */
    public static boolean isValid(Integer value) {
        return fromValue(value) != null;
    }

    /**
     * 获取学年描述
     *
     * @param value 学年值
     * @return 学年描述
     */
    public static String getDescription(Integer value) {
        XueNianEnum item = fromValue(value);
        return item != null ? item.getDescription() : "未知学年";
    }
}
